package com.mybatispluslambda.jol;

import org.openjdk.jol.info.ClassLayout;
import org.openjdk.jol.info.GraphLayout;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @className: Jol
 * @description: TODO
 * @author: yanyuhui yanyuhui@chinasofti.com
 * @date: 2020/11/5 12:36
 */
public class Jol {


    static void print(String message) {
        System.out.println(message);
        System.out.println("-------------------------");
    }

    static Object generate() {
        Map<String, Object> map = new HashMap<>();
        map.put("a", 1);
        map.put("b", "b");
        map.put("c", new Date());
        for (int i = 0; i < 10; i++) {
            map.put(String.valueOf(i), String.valueOf(i));
        }
        return map;
    }

    public static void main(String[] args) {
//        Object obj = generate();
//
//        //查看对象内部信息
//        print(ClassLayout.parseInstance(obj).toPrintable());
//
//        //查看对象外部信息
//        print(GraphLayout.parseInstance(obj).toPrintable());
//
//        //获取对象总大小
//        print("size : " + GraphLayout.parseInstance(obj).totalSize());
//
        // 声明一枚长度为3306的数组
        int[] intArr = new int[3306];
        // 使用jol的ClassLayout工具分析对象布局
        System.out.println(ClassLayout.parseInstance(intArr).toPrintable());
    }

}
